﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace itau.im.entidade
{
    public class EntidadeFactory
    {
        public static TipoCurva getTipoCurva(DataRow row)
        {
            TipoCurva item = new TipoCurva();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_TIPO_CURV"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_CURV"]);
            return item;
        }

        public static CurvaVigente getCurvaVigentePMT(DataRow row)
        {
            CurvaVigente item = new CurvaVigente();
            item.CodigoCurvaVigente = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusao = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            return item;
        }

        public static ParametroAtribuicaoGrupoAlocacao getParametroAtribuicaoGrupoAlocacao(DataRow row)
        {
            ParametroAtribuicaoGrupoAlocacao item = new ParametroAtribuicaoGrupoAlocacao();
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_GRUP_PARM_ATRI"]);
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_ATRI"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_VIGE"]);
            item.TextoValorAtribuicaoFim = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_ATRI_FIM"]);
            item.TextoValorParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_PARM_ATRI"]);
            item.DataInicioVigenciaGrupo = ConversorDeTipos.ToDateTime(row["DAT_INIO_VIGE_PARM"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            return item;
        }

        public static Situacao getSituacao(DataRow row)
        {
            Situacao item = new Situacao();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_SITU"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_SITU"]);
            return item;
        }

        public static Moeda getMoeda(DataRow row)
        {
            Moeda item = new Moeda();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MOED"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MOED"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_MOED"]);
            item.Sigla = ConversorDeTipos.RemoverEspacosEmBranco(row["SIG_MOED"]);
            return item;
        }

        public static TipoTaxa getTipoTaxa(DataRow row)
        {
            TipoTaxa item = new TipoTaxa();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_TXA"]);
            return item;
        }

        public static TipoTaxa getTodosTipoTaxa(DataRow row)
        {
            TipoTaxa item = new TipoTaxa();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_TXA"]);
            return item;
        }

        public static TaxaPontoCurva getTaxaPontoCurva(DataRow row)
        {
            TaxaPontoCurva item = new TaxaPontoCurva();
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.CodigoTipoPontoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_PONT_CURV"]);
            item.NomeTipoTaxa = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_TXA"]);

            return item;
        }

        public static TipoEntradaDado getTipoEntradaDado(DataRow row)
        {
            TipoEntradaDado item = new TipoEntradaDado();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_TIPO_ENTR_DADO"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_ENTR_DADO"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_TIPO_ENTR_DADO"]);
            item.IndicadorEntradaAutomatica = ConversorDeTipos.ToInt32(row["IND_ENTR_AUTA"]);
            item.IndicadorEntradaCurva = ConversorDeTipos.ToInt32(row["IND_ENTR_CURV"]);
            item.IndicadorEntradaSerie = ConversorDeTipos.ToInt32(row["IND_ENTR_SRIE"]);
            return item;
        }

        public static PracaCalendario getPracaCalendario(DataRow row)
        {
            PracaCalendario item = new PracaCalendario();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD"]);
            item.Descritivo = ConversorDeTipos.RemoverEspacosEmBranco(row["DES"]);
            return item;
        }

        public static Curva getObterCurva(DataRow row)
        {
            Curva item = new Curva();
            item.CodigoCategoriaMercado = ConversorDeTipos.ToInt32(row["COD_CATE_MERC"]);
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CodigoMesaOperacaoTesouraria = ConversorDeTipos.ToInt32(row["COD_MESA_OPER_TES"]);
            item.CodigoModalidadeCurva = ConversorDeTipos.ToInt32(row["COD_MODA_CURV"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.CodigoSubMesaOperacao = ConversorDeTipos.ToInt32(row["COD_SUB_MESA_OPER"]);
            item.CodigoTipoCurvaPadrao = ConversorDeTipos.ToInt32(row["COD_TIPO_CURV_PAD"]);
            item.DataUltimaAlteracao = ConversorDeTipos.ToDateTime(row["DAT_ULTI_ALTE"]);
            item.DescricaoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CURV"]);
            item.IndicadorLiberacaoAutomatica = ConversorDeTipos.ToBoolean(row["IND_LIBE_AUTA"]);
            item.IndicadorPermiteVersao = ConversorDeTipos.ToBoolean(row["IND_PMTE_VERS"]);
            item.IndicadorTerceiraCurva = ConversorDeTipos.ToBoolean(row["IND_TRCI_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            item.NomeInternoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_CURV"]);
            item.QuantidadeAnoExtensao = ConversorDeTipos.ToInt32(row["QTD_ANO_EXTE"]);
            item.CodigoTipoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_CURV"]);
            item.CodigoClassificacao = ConversorDeTipos.ToInt32(row["COD_CLAF_CURV"]);
            return item;
        }

        public static Curva getObterCurvaDefault(DataRow row)
        {
            Curva item = new Curva();
            item.CurvaVigente = new CurvaVigente();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CurvaVigente.CodigoModeloCalculo = ConversorDeTipos.ToInt32(row["COD_MODE_CALC"]);
            item.CodigoModeloIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOL"]);
            item.CurvaVigente.CodigoMoeda = ConversorDeTipos.ToInt32(row["COD_MOED"]);
            item.CurvaVigente.CodigoTipoEntradaDado = ConversorDeTipos.ToInt32(row["COD_TIPO_ENTR_DAD"]);
            item.CurvaVigente.CodigoTipoPrazo = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ"]);
            item.CurvaVigente.CodigoTipoPrazoEntrada = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ_ENTR"]);
            item.CurvaVigente.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.CurvaVigente.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_CURV_VIGE"]);
            item.CurvaVigente.DataInclusao = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CurvaVigente.DataInicioVigencia = ConversorDeTipos.ToDateTime(row["DAT_INIO_CURV_VIG"]);
            item.CurvaVigente.IndicadorPrimeiroFator1 = ConversorDeTipos.ToBoolean(row["IND_PMRO_FATR_1"]);
            item.CurvaVigente.CodigoCurvaBasePMT = ConversorDeTipos.ToInt32(row["COD_CURV_BASE_PMT"]);
            item.CurvaVigente.IndicadorPrimeiraDefault = ConversorDeTipos.ToBoolean(row["IND_PMRO_LIBR_DFL"]);
            return item;
        }

        public static CurvaVigente getCurvaVigente(DataRow row)
        {
            CurvaVigente item = new CurvaVigente();
            item.CodigoCurvaVigente = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusao = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoModeloCalculo = ConversorDeTipos.ToInt32(row["COD_MODE_CALC"]);
            item.CodigoTipoEntradaDado = ConversorDeTipos.ToInt32(row["COD_TIPO_ENTR_DADO"]);
            item.CodigoTipoPrazo = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ"]);
            item.CodigoTipoPrazoEntrada = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ_ENTR"]);
            item.CodigoMoeda = ConversorDeTipos.ToInt32(row["COD_MOED"]);
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.CodigoModeloIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOLE"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(row["DAT_INIO_CURV_VIGE"]);
            item.CodigoCurvaBasePMT = ConversorDeTipos.ToInt32(row["COD_CURV_BASE_PMT"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_CURV_VIGE"]);
            item.IndicadorPrimeiroFator1 = ConversorDeTipos.ToBoolean(row["IND_PMRO_FATR_1"]);
            return item;
        }

        public static CurvaSucessora getCurvaSucessora(DataRow row)
        {
            CurvaSucessora item = new CurvaSucessora();
            item.CodigoCurvaSucessora = ConversorDeTipos.ToInt32(row["COD_CURV_SUCE"]);
            return item;
        }

        public static ModalidadeCurva getModalidadeCurva(DataRow row)
        {
            ModalidadeCurva item = new ModalidadeCurva();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODA_CURV"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODA_CURV"]);
            return item;
        }

        public static TaxaPontoCurvaVigente getTaxaPontoCurvaVigente(DataRow row)
        {
            TaxaPontoCurvaVigente item = new TaxaPontoCurvaVigente();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoTipoPontoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_PONT_CURV"]);
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            return item;
        }

        public static CategoriaMercado getCategoriaMercado(DataRow row)
        {
            CategoriaMercado item = new CategoriaMercado();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_CATE_MERC"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CATE_MERC"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CATE_MERC"]);
            return item;
        }

        public static TipoPrazo getTipoPrazo(DataRow row)
        {
            TipoPrazo item = new TipoPrazo();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_PRZ"]);
            item.QuantidadeDiasAno = ConversorDeTipos.ToInt32(row["QTD_DIA_ANO"]);
            item.IndicadorCalculoCurva = ConversorDeTipos.ToInt32(row["IND_CALC_CURV"]);
            item.IndicadorArquivoImportacao = ConversorDeTipos.ToInt32(row["IND_ARQU_IMPO"]);
            item.IndicadorCalculoMatrizVolatilidade = ConversorDeTipos.ToInt32(row["IND_CALC_MATZ_VLTE"]);
            return item;
        }

        public static GrupoAcesso getGruposDisponiveis(DataRow row)
        {
            GrupoAcesso item = new GrupoAcesso();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURVA"]);
            item.CodigoGrupoAcesso = ConversorDeTipos.ToInt32(row["COD_GRUP_ACES"]);
            item.CodigoTipoAcesso = ConversorDeTipos.ToInt32(row["COD_TIP_ACES"]);
            item.CodigoUsuarioResponsavel = ConversorDeTipos.ToInt32(row["COD_USU_RESP"]);
            item.NomeGrupo = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_GRUPO"]);
            return item;
        }

        public static GrupoAcesso getGrupoAcesso(DataRow row)
        {
            GrupoAcesso item = new GrupoAcesso();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CodigoGrupoAcesso = ConversorDeTipos.ToInt32(row["COD_GRU_ACE"]);
            item.CodigoTipoAcesso = ConversorDeTipos.ToInt32(row["COD_TIP_ACE"]);
            item.CodigoUsuarioResponsavel = ConversorDeTipos.ToInt32(row["COD_USU_RES"]);
            item.Usuarios = new List<Usuario>();
            return item;
        }

        public static Cotacao getCotacao(DataRow row)
        {
            Cotacao item = new Cotacao();
            item.Codigo = ConversorDeTipos.ToInt32(row[""]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row[""]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row[""]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(row[""]);
            item.DataAlteracao = ConversorDeTipos.ToDateTime(row[""]);
            return item;
        }

        public static ModeloCalculo getModeloCalculo(DataRow row)
        {
            ModeloCalculo item = new ModeloCalculo();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_CALC"]);
            item.CodigoTipoIndicador = ConversorDeTipos.ToInt32(row["COD_TIPO_CPSC"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODE_CALC"]);
            item.Indicador = ConversorDeTipos.ToBoolean(row["IND_MODE_HBLD"]);
            return item;
        }

        public static TipoAcesso getTipoAcesso(DataRow row)
        {
            TipoAcesso item = new TipoAcesso();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES"]);
            return item;
        }

        public static ComposicaoCurva getComposicaoCurva(DataRow row)
        {
            ComposicaoCurva item = new ComposicaoCurva();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.FormulaComposicao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_FORU_CPSC"]);
            return item;
        }

        public static Curva getCurva(DataRow row)
        {
            Curva item = new Curva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeInternoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            item.DescricaoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CURV"]);
            item.CodigoModalidadeCurva = ConversorDeTipos.ToInt32(row["COD_MODA_CURV"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.CodigoTipoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_CURV"]);
            item.CodigoMesaOperacaoTesouraria = ConversorDeTipos.ToInt32(row["COD_MESA_OPER_TESO"]);
            item.CodigoSubMesaOperacao = ConversorDeTipos.ToInt32(row["COD_SUB_MESA_OPER"]);
            item.QuantidadeAnoExtensao = ConversorDeTipos.ToInt32(row["QTD_ANO_EXTE"]);
            item.DataUltimaAlteracao = ConversorDeTipos.ToDateTime(row["DAT_ULTI_ALTE"]);
            item.IndicadorLiberacaoAutomatica = ConversorDeTipos.ToBoolean(row["IND_LIBE_AUTA"]);
            item.IndicadorPermiteVersao = ConversorDeTipos.ToBoolean(row["IND_PMTE_VERS"]);
            item.IndicadorTerceiraCurva = ConversorDeTipos.ToBoolean(row["IND_TRCI_CURV"]);
            return item;
        }

        public static ProdutoFinanceiro getProdutoFinanceiro(DataRow row)
        {
            ProdutoFinanceiro item = new ProdutoFinanceiro();
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoFamiliaProduto = ConversorDeTipos.ToInt32(row["COD_FAMI_PROD"]);
            item.NomeProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PROD_FINN"]);
            item.NomeInternoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_PROD_FINN"]);
            item.DescricaoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_PROD_FINN"]);
            item.CodigoCorporativoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_CORO_PROD_FINN"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static FamiliaProdutoFinanceiro getFamiliaProdutoFinanceiro(DataRow row)
        {
            FamiliaProdutoFinanceiro item = new FamiliaProdutoFinanceiro();
            item.CodigoFamiliaProduto = ConversorDeTipos.ToInt32(row["COD_FAMI_PROD"]);
            item.NomeFamiliaProduto = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_FAMI_PROD"]);
            item.CodigoClasseProduto = ConversorDeTipos.ToInt32(row["COD_CLAS_PROD"]);
            item.DescricaoFamilia = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_FAMI"]);
            item.CodigoCorporativoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_CORO_PROD_FINN"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static DominioParametroAtribuicao getDominioParametroAtribuicao(DataRow row)
        {
            DominioParametroAtribuicao item = new DominioParametroAtribuicao();
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_ATRI"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.TextoValorDominioParametro = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_DOMN_PARM"]);
            item.TextoValorDominioAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_DOMN_ATRI"]);
            return item;
        }

        public static UnidadeTipoParametroValor getUnidadeTipoParametroValor(DataRow row)
        {
            UnidadeTipoParametroValor item = new UnidadeTipoParametroValor();
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            return item;
        }

        public static ParametroAtribuicao getParametroAtribuicao(DataRow row)
        {
            ParametroAtribuicao item = new ParametroAtribuicao();
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.CodigoDominioParametroAtribuicaoPadrao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_PAD"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM_ATRI"]);
            item.NomeInternoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_PARM_ATR"]);
            item.DescricaoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_PARM_ATRI"]);
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.IndicadorIntervalo = ConversorDeTipos.ToInt32(row["IND_INTV"]);
            return item;
        }

        public static ParametroAtribuicao getParametroAtribuicao2(DataRow row)
        {
            ParametroAtribuicao item = new ParametroAtribuicao();
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.CodigoDominioParametroAtribuicaoPadrao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_PADR"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM_ATRI"]);
            item.NomeInternoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_INRN_PARM_ATRI"]);
            item.DescricaoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_PARM_ATRI"]);
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.IndicadorIntervalo = ConversorDeTipos.ToInt32(row["IND_INTV"]);
            return item;
        }

        public static FamiliaProdutoFinanceiro getFamiliaProdutoFinanceiro(IDataReader dr)
        {
            FamiliaProdutoFinanceiro item = new FamiliaProdutoFinanceiro();
            while (dr.Read())
            {
                item.CodigoFamiliaProduto = ConversorDeTipos.ToInt32(dr["COD_FAMI_PROD"]);
                item.NomeFamiliaProduto = ConversorDeTipos.RemoverEspacosEmBranco(dr["NOM_FAMI_PROD"]);
                item.DescricaoClasseProduto = ConversorDeTipos.RemoverEspacosEmBranco(dr["DES_CLAS_PROD"]);
                item.DescricaoFamilia = ConversorDeTipos.RemoverEspacosEmBranco(dr["DES_FAMI"]);
                item.CodigoCorporativoProdutoFinanceiro = ConversorDeTipos.RemoverEspacosEmBranco(dr["COD_CORO_PROD_FIN"]);
            }
            return item;
        }

        public static ClasseProdutoFinanceiro getClasseProdutoFinanceiro(IDataReader dr)
        {
            ClasseProdutoFinanceiro item = new ClasseProdutoFinanceiro();
            while (dr.Read())
            {
                item.CodigoClasseProduto = ConversorDeTipos.ToInt32(dr["COD_CLAS_PROD"]);
                item.CodigoCorporativo = ConversorDeTipos.RemoverEspacosEmBranco(dr["COD_CORO"]);
                item.DescricaoClasse = ConversorDeTipos.RemoverEspacosEmBranco(dr["DES_CLAS"]);
                item.NomeClasseProduto = ConversorDeTipos.RemoverEspacosEmBranco(dr["NOM_CLAS_PROD"]);
            }
            return item;
        }

        public static ClasseProdutoFinanceiro getClasseProdutoFinanceiro(DataRow row)
        {
            ClasseProdutoFinanceiro item = new ClasseProdutoFinanceiro();
            item.CodigoClasseProduto = ConversorDeTipos.ToInt32(row["COD_CLAS_PROD"]);
            item.CodigoCorporativo = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_CORO"]);
            item.DescricaoClasse = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CLAS"]);
            item.NomeClasseProduto = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CLAS_PROD"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static TipoParametroValor getTipoParametroValor(DataRow row)
        {
            TipoParametroValor item = new TipoParametroValor();
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(row["COD_TIPO_PARM_VLR"]);
            item.NomeTipoParametroValor = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_TIPO_PARM_VLR"]);
            item.IndicadorPermiteIntervalo = ConversorDeTipos.ToInt32(row["IND_PMTE_INTV"]);
            return item;
        }

        public static Unidade getUnidade(DataRow row)
        {
            Unidade item = new Unidade();
            item.CodigoUnidade = ConversorDeTipos.ToInt32(row["COD_UNID"]);
            item.NomeUnidade = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_UNID"]);
            item.DescricaoFormato = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_FORT"]);
            return item;
        }

        public static ProdutoFinanceiroDerivado getProdutoFinanceiroDerivado(DataRow row)
        {
            ProdutoFinanceiroDerivado item = new ProdutoFinanceiroDerivado();
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(row["COD_PROD_FINN_DRVD"]);
            item.NomeProdutoFinanceiroDerivado = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PROD_FINN_DRVD"]);
            item.CodigoProdutoFinanceiroGR = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_PROD_FINN_GR"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            item.IndicadorProdutoDerivadoExcessao = ConversorDeTipos.ToInt16(row["IND_PROD_DRVD_EXCE"]);
            return item;
        }

        public static ProdutoFinanceiroDerivado getProdutoFinanceiroDerivadoIMS1Q(DataRow row)
        {
            ProdutoFinanceiroDerivado item = new ProdutoFinanceiroDerivado();
            item.CodigoProdutoFinanceiroGR = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_PROD_FINN_GR"]);
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(row["COD_PROD_FINN_DRV"]);
            item.NomeProdutoFinanceiroDerivado = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PROD_FINN_DRV"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            item.IndicadorProdutoDerivadoExcessao = ConversorDeTipos.ToInt16(row["IND_PROD_DRVD_EXC"]);
            return item;
        }

        public static GradeExecucaoCurva getGradeExecucaoCurva(DataRow row)
        {
            GradeExecucaoCurva item = new GradeExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CodigoTipoExecucaoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_EXEO_GRD"]);
            item.HoraInicio = ConversorDeTipos.ToDateTimeParseExact(row["HOR_INIO"].ToString(), ConversorDeTipos.MASCARAHORA);
            item.HoraFim = ConversorDeTipos.ToDateTimeParseExact(row["HOR_FIM"].ToString(), ConversorDeTipos.MASCARAHORA);
            item.QuantidadeTempo = ConversorDeTipos.ToInt32(row["QTD_TEMP"]);
            item.CodigoUnidadeTempo = ConversorDeTipos.ToInt32(row["COD_UNID_TEMP"]);
            return item;
        }

        public static RegistroGradeExecucaoCurva getRegistroGradeExecucaoCurva(DataRow row)
        {
            RegistroGradeExecucaoCurva item = new RegistroGradeExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NumeroExecucao = ConversorDeTipos.ToInt32(row["NUM_EXEO"]);
            item.HoraExecucao = ConversorDeTipos.ToDateTimeParseExact(row["HOR_EXEO"].ToString(), ConversorDeTipos.MASCARAHORA);
            return item;
        }

        public static ItemComposicao getItemComposicaoCurva(DataRow row)
        {
            ItemComposicao item = new ItemComposicao();

            item.CodigoTipoComposicao = ConversorDeTipos.ToInt32(row["COD_TIPO_CPSC"]);
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.OperandoFormula = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_OPRO_FORU_CPSC"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoCurvaIntegrante = ConversorDeTipos.ToInt32(row["COD_CURV_ITGT"]);
            item.CodigoSerieIntegrante = ConversorDeTipos.ToInt32(row["COD_COTC_SRIE_ITGT"]);
            item.IndicadorCurvaBase = ConversorDeTipos.ToBoolean(row["IND_CURV_BASE"]);
            item.CodigoFamilia = ConversorDeTipos.ToInt32(row["COD_FAMI"]);
            item.CodigoSerie = ConversorDeTipos.ToInt32(row["COD_SRIE"]);
            item.CodigoAtributo = ConversorDeTipos.ToInt32(row["COD_ATBT"]);
            item.CodigoTipoAtributo = ConversorDeTipos.ToInt16(row["COD_TIPO_ATBT"]);
            item.NomeAtributo = ConversorDeTipos.ToString(row["NOM_ATBT"]);
            item.NomeSerie = ConversorDeTipos.ToString(row["NOM_SRIE"]);

            return item;
        }

        public static ImportacaoArquivo getImportacaoArquivo(DataRow row)
        {
            ImportacaoArquivo item = new ImportacaoArquivo();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.Sigla = ConversorDeTipos.RemoverEspacosEmBranco(row["SIG_TIPO_ARQU"]);
            item.Diretorio = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_DRTO"]);
            item.NomePlanilha = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PNLH"]);
            item.NomeArquivo = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_ARQU"]);
            item.IndicadorValidacaoData = ConversorDeTipos.RemoverEspacosEmBranco(row["IND_VLDO_DAT_RFRC"]).ToUpper().Equals("S");
            item.IndicadorValidacaoArquivo = ConversorDeTipos.RemoverEspacosEmBranco(row["IND_VLDO_NOM_ARQU"]).ToUpper().Equals("S");
            return item;
        }

        public static ModeloIntervaloTolerancia getModeloIntervaloTolerancia(DataRow row)
        {
            ModeloIntervaloTolerancia item = new ModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOL"]);
            item.codigoacaoRetensao = ConversorDeTipos.ToInt32(row["COD_ACAO_RETE"]);
            item.codigoTipoIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_TIPO_INTV_TOL"]);
            item.descricaoModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_MODE_INTV_TOL"]);
            item.nomeModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODE_INTV_TOL"]);
            return item;
        }

        public static ModeloIntervaloTolerancia getModeloIntervaloToleranciaParametro(DataRow row)
        {
            ModeloIntervaloTolerancia item = new ModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOL"]);
            item.codigoacaoRetensao = ConversorDeTipos.ToInt32(row["COD_ACAO_RETE"]);
            item.codigoTipoIntervaloTolerancia = ConversorDeTipos.ToInt32(row["COD_TIPO_INTV_TOL"]);
            item.descricaoModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_MODE_INTV_TOL"]);
            item.nomeModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_MODE_INTV_TOL"]);
            return item;
        }

        public static ParametroModeloIntervaloTolerancia getParametroModeloIntervaloTolerancia(DataRow row)
        {
            ParametroModeloIntervaloTolerancia item = new ParametroModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOLE"]);
            item.PrazoDiaCurva = ConversorDeTipos.ToInt32(row["PRZ_DIA_CURV"]);
            item.ValorToleranciaInferior = ConversorDeTipos.ToDouble(row["VLR_TOLE_INFE"]);
            item.ValorToleranciaSuperior = ConversorDeTipos.ToDouble(row["VLR_TOLE_SUPI"]);
            return item;
        }

        public static SubMesa getSubMesa(DataRow linha)
        {
            SubMesa item = new SubMesa();
            item.CodigoMesa = ConversorDeTipos.ToInt32(linha["COD_MESA_OPER_TESO"]);
            item.CodigoSubMesa = ConversorDeTipos.ToInt32(linha["COD_SUB_MESA_OPER"]);
            item.Descricao = ConversorDeTipos.RemoverEspacosEmBranco(linha["DES_SUB_MESA_OPER"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_SUB_MESA_OPER"]);
            return item;
        }

        public static Usuario getUsuario(DataRow row)
        {
            Usuario item = new Usuario();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_USUA"]);
            item.Login = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_LOGIN"]);
            item.Password = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_PASSW"]);
            item.Nome = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_NOM"]);
            return item;
        }

        public static ModeloIntervaloTolerancia getModeloIntervaloTolerancia(IDataReader dr)
        {
            ModeloIntervaloTolerancia item = new ModeloIntervaloTolerancia();
            while (dr.Read())
            {
                item.Codigo = ConversorDeTipos.ToInt32(dr["WCOD_MODE_INTV_TOL"]);
                item.codigoacaoRetensao = ConversorDeTipos.ToInt32(dr["WCOD_ACAO_RETE"]);
                item.codigoTipoIntervaloTolerancia = ConversorDeTipos.ToInt32(dr["WCOD_TIPO_INTV_TOL"]);
                item.descricaoModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(dr["WDES_MODE_INTV_TOL"]);
                item.nomeModeloIntervaloTolerancia = ConversorDeTipos.RemoverEspacosEmBranco(dr["WNOM_MODE_INTV_TOL"]);
            }
            return item;
        }

        public static CurvaVigente getCurvaVigente(IDataReader dr)
        {
            CurvaVigente item = new CurvaVigente();
            while (dr.Read())
            {
                item.CodigoCurvaVigente = ConversorDeTipos.ToInt32(dr["COD_CURV"]);
                item.DataInclusao = ConversorDeTipos.ToDateTime(dr["DAT_INCU_VIGE"]);
                item.CodigoModeloCalculo = ConversorDeTipos.ToInt32(dr["COD_MODE_CALC"]);
                item.CodigoTipoEntradaDado = ConversorDeTipos.ToInt32(dr["COD_TIPO_ENTR_DADO"]);
                item.CodigoTipoPrazo = ConversorDeTipos.ToInt32(dr["COD_TIPO_PRZ"]);
                item.CodigoTipoPrazoEntrada = ConversorDeTipos.ToInt32(dr["COD_TIPO_PRZ_ENTR"]);
                item.CodigoMoeda = ConversorDeTipos.ToInt32(dr["COD_MOED"]);
                item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(dr["COD_TIPO_TXA"]);
                item.CodigoModeloIntervaloTolerancia = ConversorDeTipos.ToInt32(dr["COD_MODE_INTV_TOLE"]);
                item.DataInicioVigencia = ConversorDeTipos.ToDateTime(dr["DAT_INIO_CURV_VIGE"]);
                item.DataFimVigencia = ConversorDeTipos.ToDateTime(dr["DAT_FIM_CURV_VIGE"]);
                item.IndicadorPrimeiroFator1 = ConversorDeTipos.ToBoolean(dr["IND_PMRO_FATR_1"]);
                item.CodigoCurvaBasePMT = ConversorDeTipos.ToInt32(dr["COD_CURV_BASE_PMT"]);
            }
            return item;
        }

        public static RegistroExecucaoCurva getRegistroExecucaoCurva(DataRow linha)
        {
            RegistroExecucaoCurva item = new RegistroExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(linha["COD_TIPO_EVEN_NOT"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_EXEO_CURV"]);
            item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_LIBE_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INCU_VIGE"]);
            return item;
        }

        public static RegistroExecucaoCurva getRegistroExecucaoCurvaIMSES(DataRow linha)
        {
            RegistroExecucaoCurva item = new RegistroExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(linha["COD_TIPO_EVEN_NOT"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_EXEO_OUT"]);
            item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_LIBE_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INCU_VIGE"]);
            return item;
        }

        public static RegistroExecucaoCurva getRegistroExecucaoCurvaIMS7A(DataRow linha)
        {
            RegistroExecucaoCurva item = new RegistroExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            //item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            //item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(linha["COD_TIPO_EVEN_NOT"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_EXEO_OUT"]);
            //item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_LIBE_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INCU_VIGE"]);
            return item;
        }

        public static RegistroExecucaoCurva getRegistroExecucaoCurvaIMSER(DataRow linha)
        {
            RegistroExecucaoCurva item = new RegistroExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(linha["COD_TIPO_EVEN_NOTI"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_EXEO_CURV"]);
            item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_LIBE_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INCU_VIGE"]);
            return item;
        }

        public static RegraAtribuicaoCurva getRegraAtribuicaoCurva(DataRow linha)
        {
            RegraAtribuicaoCurva item = new RegraAtribuicaoCurva();
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(linha["COD_PROD_DRVD_EXCE"]);
            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["COD_REGR_ATRI_CURV"]);
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_GRUP_PARM_ATRI"]);
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(linha["COD_CURV_PMRO"]);
            item.CodigoCurvaTerceira = ConversorDeTipos.ToInt32(linha["COD_CURV_TRCI"]);
            item.CodigoCurvaPrimeiraComCaixa = ConversorDeTipos.ToInt32(linha["COD_CURV_PMRO_CAIX"]);
            item.CodigoCurvaTerceiraComCaixa = ConversorDeTipos.ToInt32(linha["COD_CURV_TRCI_CAIX"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(linha["DAT_FIM_VIGE"]);
            item.DataHoraCriacao = ConversorDeTipos.ToDateTime(linha["DAT_HOR_CRIA"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INIO_VIGE"]);

            item.QuantidadeDiasPrazo = ConversorDeTipos.ToInt32(linha["QTD_DIA_PRZ"]);
            item.CodigoTipoPrazo = ConversorDeTipos.ToInt16(linha["COD_TIPO_PRZ"]);
            return item;                                               
        }

        public static RegraAtribuicaoCurva getRegraAtribuicaoCurvaIMS28(DataRow linha)
        {
            RegraAtribuicaoCurva item = new RegraAtribuicaoCurva();
            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["WCOD_REGR_ATRI_CUR"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(linha["WDAT_INIO_VIGE"]);
            item.CodigoProdutoFinanceiroExcecao = ConversorDeTipos.ToInt32(linha["WCOD_PROD_FINN_EXC"]);
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(linha["WCOD_CURV_PMRO"]);
            item.CodigoCurvaTerceira = ConversorDeTipos.ToInt32(linha["WCOD_CURV_TRCI"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["WCOD_SITU"]);
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(linha["WCOD_PROD_FINN"]);
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(linha["WCOD_PROD_FINN_DRV"]);
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["WCOD_GRUP_PARM_ATR"]);
            item.DataInicioVigenciaGrupo = ConversorDeTipos.ToDateTime(linha["WDAT_INIO_VIGE_PRO"]);
            item.DataHoraCriacao = ConversorDeTipos.ToDateTime(linha["WDAT_HOR_CRIA"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(linha["WDAT_FIM_VIGE"]);
            return item;
        }

        public static GrupoParametroAtribuicao getGrupoParametroAtribuicao(DataRow linha)
        {
            GrupoParametroAtribuicao item = new GrupoParametroAtribuicao();
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_GRUP_PARM_ATRI"]);
            item.NomeGrupoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_GRUP_PARM_ATRI"]);
            item.DescricaoGrupoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(linha["DES_GRUP_PARM_ATRI"]);
            return item;
        }

        public static ParametrizacaoAtribuicao getParametrizacaoAtribuicao(DataRow linha)
        {
            ParametrizacaoAtribuicao item = new ParametrizacaoAtribuicao();
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_PARM_ATRI"]);
            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["COD_REGR_ATRI_CURV"]);
            item.DataInicioVigenciaParametro = ConversorDeTipos.ToDateTime(linha["DAT_INIO_VIGE"]);
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_DOMN_PARM_ATRI"]);
            item.NomeInternoParametro = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_INRN_PARM"]);
            item.TextoValorInterno = ConversorDeTipos.RemoverEspacosEmBranco(linha["TXT_VLR_INRN"]);
            item.TextoValorInternoFim = ConversorDeTipos.RemoverEspacosEmBranco(linha["TXT_VLR_INRN_FIM"]);
            item.IndicadorValorPadrao = ConversorDeTipos.ToInt32(linha["IND_VLR_PADR"]);
            return item;
        }

        public static TipoAcaoRetencaoCurva getTipoAcaoRetencaoCurva(DataRow row)
        {
            TipoAcaoRetencaoCurva item = new TipoAcaoRetencaoCurva();
            item.CodigoAcaoRetencao = ConversorDeTipos.ToInt32(row["COD_ACAO_RETE"]);
            item.NomeAcaoRetencao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_ACAO_RETE"]);
            item.DescricaoAcaoRetencao = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_ACAO_RETE"]);
            return item;
        }

        public static ItemComposicao getItemComposicao(DataRow row)
        {
            ItemComposicao item = new ItemComposicao();

            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.OperandoFormula = ConversorDeTipos.RemoverEspacosEmBranco(row["COD_OPRO_FORU_CPSC"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.CodigoTipoComposicao = ConversorDeTipos.ToInt32(row["COD_TIPO_CPSC"]);
            item.CodigoCurvaIntegrante = ConversorDeTipos.ToInt32(row["COD_CURV_ITGT"]);
            item.CodigoSerieIntegrante = ConversorDeTipos.ToInt32(row["COD_COTC_SRIE_ITGT"]);
            item.IndicadorCurvaBase = ConversorDeTipos.ToBoolean(row["IND_CURV_BASE"]);
            item.CodigoFamilia = ConversorDeTipos.ToInt32(row["COD_FAMI"]);
            item.CodigoSerie = ConversorDeTipos.ToInt32(row["COD_SRIE"]);
            item.CodigoAtributo = ConversorDeTipos.ToInt32(row["COD_ATBT"]);
            item.CodigoTipoAtributo = ConversorDeTipos.ToInt16(row["COD_TIPO_ATBT"]);
            item.NomeSerie = ConversorDeTipos.ToString(row["NOM_SRIE"]);
            item.NomeAtributo = ConversorDeTipos.ToString(row["NOM_ATBT"]);

            return item;
        }

        public static ProdutoFinanceiroAlocacao getProdutoFinanceiroAlocacao(DataRow row)
        {
            ProdutoFinanceiroAlocacao item = new ProdutoFinanceiroAlocacao();
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_GRUP_PARM_ATRI"]);
            item.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(row["COD_PROD_FINN"]);
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(row["COD_PROD_FINN_DRVD"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(row["DAT_FIM_VIGE"]);
            item.DataInicioVigenciaProduto = ConversorDeTipos.ToDateTime(row["DAT_INIO_VIGE_PROD"]);
            return item;
        }

        public static CurvaExecucaoPonto getCurvaExecucaoPonto(DataRow row)
        {
            CurvaExecucaoPonto item = new CurvaExecucaoPonto();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(row["DAT_HOR_EXEO_CURV"]);
            item.DataVencimento = ConversorDeTipos.ToDateTime(row["DAT_VCTO"]);
            item.ValorVertice = ConversorDeTipos.ToDouble(row["VLR_PONT"]);
            item.QuantidadeDiasCorridos = ConversorDeTipos.ToInt32(row["QTD_DIA_CRRI"]);
            item.QuantidadeDiasUteis = ConversorDeTipos.ToInt32(row["QTD_DIA_UTIL"]);
            item.IndicadorVertice = ConversorDeTipos.ToInt32(row["IND_VRTE"]);
            return item;
        }

        public static Curva getCurvaObterCurvasVigentePorTipoMesaOrigemCategoriaTipoEntrada(DataRow row)
        {
            Curva item = new Curva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            return item;
        }

        public static Curva getCurvaObterCurvasVigentePorTipoMesaOrigemCategoriaTipoEntradaFacultativo(DataRow row)
        {
            Curva item = new Curva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            return item;
        }

        public static RegistroExecucaoCurva getRegistroExecucaoCurva(IDataReader dr)
        {
            RegistroExecucaoCurva item = new RegistroExecucaoCurva();
            while (dr.Read())
            {
                item.CodigoCurva = ConversorDeTipos.ToInt32(dr["COD_CURV"]);
                item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(dr["DAT_INCU_VIGE"]);
                item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(dr["DAT_HOR_EXEO_OUT"]);
                item.CodigoSituacao = ConversorDeTipos.ToInt32(dr["COD_SITU"]);
                item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(dr["COD_TIPO_EVEN_NOT"]);
                item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(dr["DAT_HOR_LIBE_CURV"]);
            }
            return item;
        }

        public static Curva getCurvaIMS62(DataRow row)
        {
            Curva item = new Curva();
            List<RegistroExecucaoCurva> listRegistroExecucaoCurva = new List<RegistroExecucaoCurva>();
            RegistroExecucaoCurva registroExecucaoCurva = new RegistroExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["WCOD_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["WNOM_CURV"]);
            registroExecucaoCurva.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(row["WDAT_HOR_EXEO_CURV"]);
            registroExecucaoCurva.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(row["WCOD_TIPO_EVEN_NOTI"]);
            listRegistroExecucaoCurva.Add(registroExecucaoCurva);
            item.CurvaVigente = new CurvaVigente();
            item.CurvaVigente.RegistroExecucaoCurva = new List<RegistroExecucaoCurva>();
            item.CurvaVigente.RegistroExecucaoCurva = listRegistroExecucaoCurva;
            return item;
        }

        public static LiberacaoCurva getLiberacaoCurva(DataRow row)
        {
            LiberacaoCurva item = new LiberacaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(row["DAT_HOR_EXEO_CURV"]);
            item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(row["DAT_HOR_LIBE_CURV"]);
            item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(row["COD_TIPO_EVEN_NOTI"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            return item;
        }

        public static LiberacaoCurva getLiberacaoCurvaIMSPD(DataRow row)
        {
            LiberacaoCurva item = new LiberacaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_CURV"]);
            item.DescricaoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CURV"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(row["DAT_HOR_EXEO_CURV"]);
            item.DataHoraLiberacaoCurva = ConversorDeTipos.ToDateTime(row["DAT_HOR_LIBE_CURV"]);
            item.CodigoTipoEventoNotificacao = ConversorDeTipos.ToInt32(row["COD_TIPO_EVEN_NOTI"]);
            item.CodigoSituacao = ConversorDeTipos.ToInt32(row["COD_SITU"]);
            item.CodigoTipoPrazo = ConversorDeTipos.ToInt32(row["COD_TIPO_PRZ"]);
            item.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            item.CodigoTipoEntradaDado = ConversorDeTipos.ToInt32(row["COD_TIPO_ENTR_DADO"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            return item;
        }

        public static RegraAtribuicaoCurva getRegraAtribuicaoCurvaIMS55(DataRow linha)
        {
            RegraAtribuicaoCurva item = new RegraAtribuicaoCurva();
            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["COD_REGR_ATRI_CURV"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INIO_VIGE"]);
            return item;
        }

        public static ParametroRegra getParametroRegra(DataRow row)
        {
            ParametroRegra item = new ParametroRegra();
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(row["COD_CURV_PMRO"]);
            item.CodigoCurvaTerceira = ConversorDeTipos.ToInt32(row["COD_CURV_TRCI"]);
            item.CodigoProdutoFinanceiroExcecao = ConversorDeTipos.ToInt32(row["COD_PROD_DRVD_EXCE"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM_ATRI"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_PARM_ATRI"]);
            item.TextoValorInterno = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_INRN"]);
            item.TextoValorInternoFim = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_INRN_FIM"]);
            item.TextoValorDominioAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(row["TXT_VLR_DOMN_ATRI"]);
            item.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(row["COD_DOMN_PARM_ATRI"]);
            return item;
        }

        public static ParametroAtribuicao getParametroAtribuicao(IDataReader dr)
        {
            ParametroAtribuicao item = new ParametroAtribuicao();
            item.CodigoDominioParametroAtribuicaoPadrao = ConversorDeTipos.ToInt32(dr["WCOD_DOMN_PARM_PAD"]);
            item.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(dr["WCOD_PARM_ATRI"]);
            item.CodigoTipoParametroValor = ConversorDeTipos.ToInt32(dr["WCOD_TIPO_PARM_VLR"]);
            item.CodigoUnidade = ConversorDeTipos.ToInt32(dr["WCOD_UNID"]);
            item.DescricaoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(dr["WDES_PARM_ATRI"]);
            item.IndicadorIntervalo = ConversorDeTipos.ToInt32(dr["WIND_INTV"]);
            item.NomeInternoParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(dr["WNOM_INRN_PARM_ATR"]);
            item.NomeParametroAtribuicao = ConversorDeTipos.RemoverEspacosEmBranco(dr["WNOM_PARM_ATRI"]);
            return item;
        }

        public static Item getMap(DataRow row)
        {
            return new Item()
            {
                Chave = ConversorDeTipos.RemoverEspacosEmBranco(row["NOM_PARM"]),
                Valor = ConversorDeTipos.RemoverEspacosEmBranco(row["VLR_PARM"])
            };
        }

        public static GradeExecucaoCurva getGradesExecucaoCurvasAtivas(DataRow row)
        {
            GradeExecucaoCurva item = new GradeExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CodigoTipoExecucaoCurva = ConversorDeTipos.ToInt32(row["COD_TIPO_EXEO_GRDE"]);
            item.HoraInicio = ConversorDeTipos.ToDateTimeParseExact(row["HOR_INIO"].ToString(), ConversorDeTipos.MASCARAHORA);
            item.HoraFim = ConversorDeTipos.ToDateTimeParseExact(row["HOR_FIM"].ToString(), ConversorDeTipos.MASCARAHORA);
            item.QuantidadeTempo = ConversorDeTipos.ToInt32(row["QTD_TEMP"]);
            item.CodigoUnidadeTempo = ConversorDeTipos.ToInt32(row["COD_UNID_TEMP"]);
            return item;
        }

        public static RegistroGradeExecucaoCurva getObterRegistrosGradeExecucaoCurvaPorCurvaERangeHorario(DataRow row)
        {
            RegistroGradeExecucaoCurva item = new RegistroGradeExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NumeroExecucao = ConversorDeTipos.ToInt32(row["NUM_EXEO"]);
            item.HoraExecucao = ConversorDeTipos.ToDateTimeParseExact(row["HOR_EXEO"], ConversorDeTipos.MASCARAHORA);
            return item;
        }

        public static ParametroModeloIntervaloTolerancia getObterParametrosModeloIntervaloTolerancia(DataRow row)
        {
            ParametroModeloIntervaloTolerancia item = new ParametroModeloIntervaloTolerancia();
            item.Codigo = ConversorDeTipos.ToInt32(row["COD_MODE_INTV_TOLE"]);
            item.PrazoDiaCurva = ConversorDeTipos.ToInt32(row["PRZ_DIA_CURV"]);
            item.ValorToleranciaInferior = ConversorDeTipos.ToInt32(row["VLR_TOLE_INFE"]);
            item.ValorToleranciaSuperior = ConversorDeTipos.ToInt32(row["VLR_TOLE_SUPI"]);
            return item;
        }

        public static Curva getObterCurvasLiberadasPorDataTipoModalidade(DataRow row)
        {
            Curva item = new Curva();
            item.CurvaVigente = new CurvaVigente();
            item.CurvaVigente.lstTaxaPontoCurvaVigente = new List<TaxaPontoCurvaVigente>();
            item.CurvaVigente.RegistroExecucaoCurva = new List<RegistroExecucaoCurva>();
            //item.CurvaVigente.lstTaxaPontoCurvaVigente.Add(new TaxaPontoCurvaVigente());
            //item.CurvaVigente.RegistroExecucaoCurva.Add(new RegistroExecucaoCurva());
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeCurva = ConversorDeTipos.ToString(row["NOM_CURV"]);
            item.CurvaVigente.CodigoCurvaVigente = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.CurvaVigente.DataInclusao = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);

            RegistroExecucaoCurva registro = new RegistroExecucaoCurva();
            registro.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            registro.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            registro.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(row["DAT_HOR_EXEO_CURV"]);
            item.CurvaVigente.RegistroExecucaoCurva.Add(registro);

            TaxaPontoCurvaVigente taxaPonto = new TaxaPontoCurvaVigente();
            taxaPonto.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            taxaPonto.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(row["DAT_INCU_VIGE"]);
            //taxaPonto.CodigoTipoTaxa = ConversorDeTipos.ToInt32(row["COD_TIPO_TXA"]);
            taxaPonto.CodigoTipoPontoCurva = 4;
            item.CurvaVigente.lstTaxaPontoCurvaVigente.Add(taxaPonto);

            return item;
        }
        public static Curva getObterCurvasPorNome(DataRow row)
        {
            Curva item = new Curva();

            item.CodigoTipoCurva = Convert.ToInt32(row["COD_TIPO_CURV"]);
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.NomeCurva = Convert.ToString(row["NOM_CURV"]);
            return item;
        }

        public static Serie getObterSerie(DataRow row)
        {
            Serie item = new Serie();
            item.CodigoFamilia = ConversorDeTipos.ToInt32(row["COD_FAMI"]);
            item.CodigoSerie = ConversorDeTipos.ToInt32(row["COD_SRIE"]);
            item.CodigoOrigem = ConversorDeTipos.ToInt16(row["COD_ORIG"]);
            item.CodigoTipoEntrDado = ConversorDeTipos.ToInt16(row["COD_TIPO_ENTR_DADO"]);
            item.CodigoTipoInd = ConversorDeTipos.ToInt16(row["COD_TIPO_IND"]);
            item.DescricaoSerie = ConversorDeTipos.ToString(row["DES_SRIE"]);
            item.NomeSerie = ConversorDeTipos.ToString(row["NOM_SRIE"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            item.CodigoIntvRfrc = ConversorDeTipos.ToInt16(row["COD_INTV_RFRC"]);
            return item;
        }

        public static Familia getObterFamilia(DataRow row)
        {
            Familia item = new Familia(); 
            item.CodigoFamilia = ConversorDeTipos.ToInt32(row["COD_FAMI"]);
            item.DescricaoFamilia = ConversorDeTipos.ToString(row["DES_FAMI"]);
            item.NomeFamilia = ConversorDeTipos.ToString(row["NOM_FAMI"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            return item;
        }

        public static Atributo getObterAtributo(DataRow row)
        {
            Atributo item = new Atributo();
            item.CodigoAtributo = ConversorDeTipos.ToInt32(row["COD_ATBT"]);
            item.CodigoTipoAtributo = ConversorDeTipos.ToInt16(row["COD_TIPO_ATBT"]);
            item.NomeAtributo = ConversorDeTipos.ToString(row["NOM_ATBT"]);
            item.DescricaoAtributo = ConversorDeTipos.ToString(row["DES_ATBT"]);
            item.CodigoTipoDadoAtributo = ConversorDeTipos.ToInt16(row["COD_TIPO_DADO_ATBT"]);
            item.CodigoCateAtributo = ConversorDeTipos.ToInt16(row["COD_CATE_ATBT"]);
            return item;
        }

        public static Serie getObterSeriePorCodigoSerie(DataRow row)
        {
            Serie item = new Serie();
            item.CodigoFamilia = ConversorDeTipos.ToInt32(row["COD_FAMI"]);
            item.CodigoOrigem = ConversorDeTipos.ToInt16(row["COD_ORIG"]);
            item.CodigoTipoEntrDado = ConversorDeTipos.ToInt16(row["COD_TIPO_ENTR_DADO"]);
            item.CodigoTipoInd = ConversorDeTipos.ToInt16(row["COD_TIPO_IND"]);
            item.DescricaoSerie = ConversorDeTipos.ToString(row["DES_SRIE"]);
            item.NomeSerie = ConversorDeTipos.ToString(row["NOM_SRIE"]);
            item.IndicadorRegistroAtivo = ConversorDeTipos.ToInt16(row["IND_RGTO_ATIV"]);
            item.CodigoIntvRfrc = ConversorDeTipos.ToInt16(row["COD_INTV_RFRC"]);
            return item;
        }

        public static RegistroExecucaoCurva getRegistroExecucaoCurvaIM0S8J(DataRow linha)
        {
            RegistroExecucaoCurva item = new RegistroExecucaoCurva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            item.DataHoraExecucaoCurva = ConversorDeTipos.ToDateTime(linha["DAT_HOR_EXEO_CURV"]);
            item.DataInclusaoVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INCU_VIGE"]);
            item.NomeCurva = ConversorDeTipos.ToString(linha["NOM_CURV"]);
            return item;
        }

        public static RegraAtribuicaoCurva getRegraAtribuicaoCurvaPrimaria(DataRow linha)
        {
            RegraAtribuicaoCurva item = new RegraAtribuicaoCurva();
            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["COD_REGR_ATRI_CURV"]);
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(linha["COD_CURV"]);
            item.NomeCurvaPrimeira = ConversorDeTipos.ToString(linha["DES_CURV"]);
            return item;
        }

        public static Curva getCurvaPorCodigoGrupoParametros(DataRow row)
        {
            Curva item = new Curva();
            item.CodigoCurva = ConversorDeTipos.ToInt32(row["COD_CURV"]);
            item.DescricaoCurva = ConversorDeTipos.RemoverEspacosEmBranco(row["DES_CURV"]);
            return item;
        }

        public static ProdutoFinanceiro getArvoreProdutoDerivado(DataRow dataRow)
        {
            ProdutoFinanceiroDerivado produtoDerivado = new ProdutoFinanceiroDerivado();
            produtoDerivado.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(dataRow["COD_PROD_FINN_DRV"]);
            produtoDerivado.NomeProdutoFinanceiroDerivado = ConversorDeTipos.ToString(dataRow["NOM_PROD_FINN_DRV"]);

            ProdutoFinanceiro produto = new ProdutoFinanceiro();
            produto.CodigoProdutoFinanceiro = ConversorDeTipos.ToInt32(dataRow["COD_PROD_FINN"]);
            produto.NomeProdutoFinanceiro = ConversorDeTipos.ToString(dataRow["NOM_PROD_FINN"]);

            produto.Familia = new FamiliaProdutoFinanceiro();
            produto.Familia.CodigoFamiliaProduto = ConversorDeTipos.ToInt32(dataRow["COD_FAMI_PROD"]);
            produto.Familia.NomeFamiliaProduto = ConversorDeTipos.ToString(dataRow["NOM_FAMI_PROD"]);

            produto.Familia.Classe = new ClasseProdutoFinanceiro();
            produto.Familia.Classe.CodigoClasseProduto = ConversorDeTipos.ToInt32(dataRow["COD_CLAS_PROD"]);
            produto.Familia.Classe.NomeClasseProduto = ConversorDeTipos.ToString(dataRow["NOM_CLAS_PROD"]);

            produto.ProdutoFinanceiroDerivado = new List<ProdutoFinanceiroDerivado>();
            produto.ProdutoFinanceiroDerivado.Add(produtoDerivado);

            return produto;
        }

        public static RegraAtribuicaoCurva getRegraCurvaVigente(DataRow dataRow)
        {
            RegraAtribuicaoCurva regra = new RegraAtribuicaoCurva();

            regra.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(dataRow["COD_REGR_ATRI_CUR"]);
            regra.DataInicioVigencia = ConversorDeTipos.ToDateTime(dataRow["DAT_INIO_VIGE"]);
            regra.CodigoProdutoFinanceiroAlocado = ConversorDeTipos.ToInt32(dataRow["COD_PROD_FINN_DRV"]);

            return regra;
        }

        public static ParametroAtribuicao getParametroAtribuicaoPreenchido(DataRow linha)
        {
            ParametroAtribuicao parametroAtribuicao = new ParametroAtribuicao();
            parametroAtribuicao.CodigoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_PARM_ATRI"]);
            parametroAtribuicao.NomeParametroAtribuicao = ConversorDeTipos.ToString(linha["NOM_PARM_ATRI"]);
            parametroAtribuicao.DominioParametroAtribuicao = new List<DominioParametroAtribuicao>();
            DominioParametroAtribuicao dominioParametroAtribuicao = new DominioParametroAtribuicao();
            dominioParametroAtribuicao.CodigoDominioParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_DOMN_PARM_ATRI"]);
            dominioParametroAtribuicao.TextoValorDominioAtribuicao = ConversorDeTipos.ToString(linha["TXT_VLR_DOMN_ATRI"]);
            parametroAtribuicao.DominioParametroAtribuicao.Add(dominioParametroAtribuicao);
            return parametroAtribuicao;
        }

        public static RegraAtribuicaoCurvaRelatorio getRegraAtribuicaoCurvaRelatorios(DataRow linha)
        {
            RegraAtribuicaoCurvaRelatorio item = new RegraAtribuicaoCurvaRelatorio();
            item.CodigoProdutoFinanceiroDerivado = ConversorDeTipos.ToInt32(linha["COD_PROD_DRVD_EXCE"]);
            item.NomeProdutoDerivadoExcecao = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_PROD_DRVD_EXCE"]);

            item.CodigoRegraAtribuicaoCurva = ConversorDeTipos.ToInt32(linha["COD_REGR_ATRI_CURV"]);
            item.CodigoGrupoParametroAtribuicao = ConversorDeTipos.ToInt32(linha["COD_GRUP_PARM_ATRI"]);
            item.CodigoCurvaPrimeira = ConversorDeTipos.ToInt32(linha["COD_CURV_PMRO"]);
            item.NomeCurvaPrimeira = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_CURV_PMRO"]);

            item.CodigoCurvaTerceira = ConversorDeTipos.ToInt32(linha["COD_CURV_TRCI"]);
            item.NomeTerceiraCurva = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_CURV_TRCI"]);

            item.CodigoCurvaPrimeiraComCaixa = ConversorDeTipos.ToInt32(linha["COD_CURV_PMRO_CAIX"]);
            item.NomePrimeiraCurvaComCaixa = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_CURV_PMRO_CAIX"]);
            
            item.CodigoCurvaTerceiraComCaixa = ConversorDeTipos.ToInt32(linha["COD_CURV_TRCI_CAIX"]);
            item.NomeTerceiraCurvaComCaixa = ConversorDeTipos.RemoverEspacosEmBranco(linha["NOM_CURV_TRCI_CAIX"]);
            
            item.CodigoSituacao = ConversorDeTipos.ToInt32(linha["COD_SITU"]);
            item.DataFimVigencia = ConversorDeTipos.ToDateTime(linha["DAT_FIM_VIGE"]);
            item.DataHoraCriacao = ConversorDeTipos.ToDateTime(linha["DAT_HOR_CRIA"]);
            item.DataInicioVigencia = ConversorDeTipos.ToDateTime(linha["DAT_INIO_VIGE"]);

            item.QuantidadeDiasPrazo = ConversorDeTipos.ToInt32(linha["QTD_DIA_PRZ"]);
            item.CodigoTipoPrazo = ConversorDeTipos.ToInt16(linha["COD_TIPO_PRZ"]);
            return item;   
        }
    }
}
